package com.breeze.media.image

import android.graphics.ColorMatrixColorFilter
import android.os.Bundle
import android.view.View
import android.view.View.OnClickListener
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import com.breeze.media.R

class FilterActivity : AppCompatActivity(), OnClickListener {
    private lateinit var photoFilterView: ColorFilterView
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_filter)
        photoFilterView = findViewById(R.id.photoEffect)
        findViewById<Button>(R.id.btn_invert).setOnClickListener(this)
        findViewById<Button>(R.id.btn_enhance).setOnClickListener(this)
        findViewById<Button>(R.id.btn_black_white).setOnClickListener(this)
    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.btn_invert -> {
                // 反相效果--底片效果
                val colorMatrix = floatArrayOf(
                    -1f, 0f, 0f, 0f, 255f,
                    0f, -1f, 0f, 0f, 255f,
                    0f, 0f, -1f, 0f, 255f,
                    0f, 0f, 0f, 1f, 0f
                )
                photoFilterView.setColorFilter(ColorMatrixColorFilter(colorMatrix))
            }
            R.id.btn_enhance -> {
                // 缩放运算--乘法 -- 颜色增强
                val colorMatrix = floatArrayOf(
                    1.2f, 0f, 0f, 0f, 0f,
                    0f, 1.2f, 0f, 0f, 0f,
                    0f, 0f, 1.3f, 0f, 0f,
                    0f, 0f, 0f, 1f, 0f
                )
                photoFilterView.setColorFilter(ColorMatrixColorFilter(colorMatrix))
            }
            R.id.btn_black_white -> {
                // 黑白效果 去色原理：只要把R G B 三通道的色彩信息设置成一样，那么图像就会变成灰色，
                val colorMatrix = floatArrayOf(
                    0.1f, 0.2f, 0.7f, 0f, 0f,
                    0.1f, 0.2f, 0.7f, 0f, 0f,
                    0.1f, 0.2f, 0.7f, 0f, 0f,
                    0f, 0f, 0f, 1f, 0f
                )
                photoFilterView.setColorFilter(ColorMatrixColorFilter(colorMatrix))
            }
        }
    }
}